<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
<title></title><style type='text/css'>html, body {overflow-x: initial !important;}.CodeMirror { height: auto; }
.CodeMirror-scroll { overflow-y: hidden; overflow-x: auto; }
.CodeMirror-lines { padding: 4px 0px; }
.CodeMirror pre { }
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { background-color: white; }
.CodeMirror-gutters { border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); background-color: rgb(247, 247, 247); white-space: nowrap; }
.CodeMirror-linenumbers { }
.CodeMirror-linenumber { padding: 0px 3px 0px 5px; text-align: right; color: rgb(153, 153, 153); }
.CodeMirror div.CodeMirror-cursor { border-left-width: 1px; border-left-style: solid; border-left-color: black; z-index: 3; }
.CodeMirror div.CodeMirror-secondarycursor { border-left-width: 1px; border-left-style: solid; border-left-color: silver; }
.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor { width: auto; border: 0px; background-color: rgb(119, 238, 119); z-index: 1; background-position: initial initial; background-repeat: initial initial; }
.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite { }
.cm-tab { display: inline-block; }
.cm-s-typora-default .cm-header, .cm-s-typora-default .cm-property { color: rgb(217, 79, 138); }
.cm-s-typora-default pre.cm-header1:not(.cm-atom) :not(.cm-overlay) { font-size: 2rem; line-height: 2rem; }
.cm-s-typora-default pre.cm-header2:not(.cm-atom) :not(.cm-overlay) { font-size: 1.4rem; line-height: 1.4rem; }
.cm-s-typora-default .cm-atom, .cm-s-typora-default .cm-number { color: rgb(149, 132, 134); }
.cm-s-typora-default .cm-table-row, .cm-s-typora-default .cm-block-start { font-family: monospace; }
.cm-s-typora-default .cm-comment, .cm-s-typora-default .cm-code { color: rgb(74, 90, 159); font-family: monospace; }
.cm-s-typora-default .cm-tag { color: rgb(169, 68, 66); }
.cm-s-typora-default .cm-string { color: rgb(126, 134, 169); }
.cm-s-typora-default .cm-link { color: rgb(196, 122, 15); text-decoration: underline; }
.cm-s-typora-default .cm-variable-2, .cm-s-typora-default .cm-variable-1 { color: inherit; }
.cm-s-typora-default .cm-overlay { font-size: 1rem; font-family: monospace; }
.CodeMirror.cm-s-typora-default div.CodeMirror-cursor { border-left-width: 3px; border-left-style: solid; border-left-color: rgb(228, 98, 154); }
.cm-s-typora-default .CodeMirror-activeline-background { left: -60px; right: -30px; background-color: rgba(204, 204, 204, 0.2); background-position: initial initial; background-repeat: initial initial; }
.cm-s-typora-default .CodeMirror-gutters { border-right-style: none; background-color: inherit; }
.cm-s-typora-default .cm-trailing-space-new-line::after, .cm-startspace::after, .cm-starttab .cm-tab::after { content: '•'; position: absolute; left: 0px; opacity: 0; font-family: LetterGothicStd, monospace; }
.os-windows .cm-startspace::after, .os-windows .cm-starttab .cm-tab::after { left: -0.1em; }
.cm-starttab .cm-tab::after { content: ' '; }
.cm-startspace, .cm-tab, .cm-starttab, .cm-trailing-space-a, .cm-trailing-space-b, .cm-trailing-space-new-line { font-family: monospace; position: relative; }
.cm-s-typora-default .cm-trailing-space-new-line::after { content: '↓'; opacity: 0.3; }
.cm-s-inner .cm-keyword { color: rgb(119, 0, 136); }
.cm-s-inner .cm-atom, .cm-s-inner.cm-atom { color: rgb(34, 17, 153); }
.cm-s-inner .cm-number { color: rgb(17, 102, 68); }
.cm-s-inner .cm-def { color: rgb(0, 0, 255); }
.cm-s-inner .cm-variable { color: black; }
.cm-s-inner .cm-variable-2 { color: rgb(0, 85, 170); }
.cm-s-inner .cm-variable-3 { color: rgb(0, 136, 85); }
.cm-s-inner .cm-property { color: black; }
.cm-s-inner .cm-operator { color: rgb(152, 26, 26); }
.cm-s-inner .cm-comment, .cm-s-inner.cm-comment { color: rgb(170, 85, 0); }
.cm-s-inner .cm-string { color: rgb(170, 17, 17); }
.cm-s-inner .cm-string-2 { color: rgb(255, 85, 0); }
.cm-s-inner .cm-meta { color: rgb(85, 85, 85); }
.cm-s-inner .cm-qualifier { color: rgb(85, 85, 85); }
.cm-s-inner .cm-builtin { color: rgb(51, 0, 170); }
.cm-s-inner .cm-bracket { color: rgb(153, 153, 119); }
.cm-s-inner .cm-tag { color: rgb(17, 119, 0); }
.cm-s-inner .cm-attribute { color: rgb(0, 0, 204); }
.cm-s-inner .cm-header, .cm-s-inner.cm-header { color: blue; }
.cm-s-inner .cm-quote, .cm-s-inner.cm-quote { color: rgb(0, 153, 0); }
.cm-s-inner .cm-hr, .cm-s-inner.cm-hr { color: rgb(153, 153, 153); }
.cm-s-inner .cm-link, .cm-s-inner.cm-link { color: rgb(0, 0, 204); }
.cm-negative { color: rgb(221, 68, 68); }
.cm-positive { color: rgb(34, 153, 34); }
.cm-header, .cm-strong { font-weight: bold; }
.cm-del { text-decoration: line-through; }
.cm-em { font-style: italic; }
.cm-link { text-decoration: underline; }
.cm-error { color: rgb(255, 0, 0); }
.cm-invalidchar { color: rgb(255, 0, 0); }
.cm-constant { color: rgb(38, 139, 210); }
.cm-defined { color: rgb(181, 137, 0); }
div.CodeMirror span.CodeMirror-matchingbracket { color: rgb(0, 255, 0); }
div.CodeMirror span.CodeMirror-nonmatchingbracket { color: rgb(255, 34, 34); }
.cm-s-inner .CodeMirror-activeline-background { background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit inherit; background-repeat: inherit inherit; }
.CodeMirror { position: relative; overflow: hidden; }
.CodeMirror-scroll { margin-bottom: -30px; margin-right: -30px; padding-bottom: 30px; padding-right: 30px; height: 100%; outline: none; position: relative; box-sizing: content-box; }
.CodeMirror-sizer { position: relative; }
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { position: absolute; z-index: 6; display: none; }
.CodeMirror-vscrollbar { right: 0px; top: 0px; overflow-x: hidden; overflow-y: scroll; }
.CodeMirror-hscrollbar { bottom: 0px; left: 0px; overflow-y: hidden; overflow-x: scroll; }
.CodeMirror-scrollbar-filler { right: 0px; bottom: 0px; }
.CodeMirror-gutter-filler { left: 0px; bottom: 0px; }
.CodeMirror-gutters { position: absolute; left: 0px; top: 0px; padding-bottom: 30px; z-index: 3; }
.CodeMirror-gutter { white-space: normal; height: 100%; box-sizing: content-box; padding-bottom: 30px; margin-bottom: -32px; display: inline-block; }
.CodeMirror-gutter-elt { position: absolute; cursor: default; z-index: 4; }
.CodeMirror-lines { cursor: text; }
.CodeMirror pre { border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; border-width: 0px; background-color: transparent; font-family: inherit; font-size: inherit; margin: 0px; white-space: pre; word-wrap: normal; color: inherit; z-index: 2; position: relative; overflow: visible; background-position: initial initial; background-repeat: initial initial; }
.CodeMirror-wrap pre { word-wrap: break-word; white-space: pre-wrap; word-break: normal; }
.CodeMirror-code pre { border-right-width: 30px; border-right-style: solid; border-right-color: transparent; width: -webkit-fit-content; }
.CodeMirror-wrap .CodeMirror-code pre { border-right-style: none; width: auto; }
.CodeMirror-linebackground { position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px; z-index: 0; }
.CodeMirror-linewidget { position: relative; z-index: 2; overflow: auto; }
.CodeMirror-widget { }
.CodeMirror-wrap .CodeMirror-scroll { overflow-x: hidden; }
.CodeMirror-measure { position: absolute; width: 100%; height: 0px; overflow: hidden; visibility: hidden; }
.CodeMirror-measure pre { position: static; }
.CodeMirror div.CodeMirror-cursor { position: absolute; visibility: hidden; border-right-style: none; width: 0px; }
.CodeMirror div.CodeMirror-cursor { visibility: hidden; }
.CodeMirror-focused div.CodeMirror-cursor { visibility: inherit; }
.CodeMirror-selected { background-color: rgb(217, 217, 217); background-position: initial initial; background-repeat: initial initial; }
.CodeMirror-focused .CodeMirror-selected { background-color: rgb(215, 212, 240); background-position: initial initial; background-repeat: initial initial; }
.cm-searching { background-color: rgba(255, 255, 0, 0.4); background-position: initial initial; background-repeat: initial initial; }
.CodeMirror span { }
@media print { 
  .CodeMirror div.CodeMirror-cursor { visibility: hidden; }
}
.CodeMirror-lint-markers { width: 16px; }
.CodeMirror-lint-tooltip { background-color: infobackground; border: 1px solid black; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; color: infotext; font-family: monospace; overflow: hidden; padding: 2px 5px; position: fixed; white-space: pre-wrap; z-index: 10000; max-width: 600px; opacity: 0; transition: opacity 0.4s; font-size: 0.8em; }
.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning { background-position: left bottom; background-repeat: repeat no-repeat; }
.CodeMirror-lint-mark-error { background-image: url(); }
.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning { cursor: pointer; display: inline-block; height: 16px; width: 16px; vertical-align: middle; position: relative; background-position: center center; background-repeat: no-repeat no-repeat; }
.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning { padding-left: 18px; background-position: left top; background-repeat: no-repeat no-repeat; }
.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error { background-image: url(); }
.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning { background-image: url(); }
.CodeMirror-lint-marker-multiple { background-image: url(); width: 100%; height: 100%; background-position: right bottom; background-repeat: no-repeat no-repeat; }


html { font-size: 14px; background-color: rgb(255, 255, 255); color: rgb(51, 51, 51); }
body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1rem; line-height: 1.42857143; overflow-x: hidden; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit inherit; background-repeat: inherit inherit; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { background-color: rgb(181, 214, 252); text-shadow: none; background-position: initial initial; background-repeat: initial initial; }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; word-wrap: break-word; position: relative; padding-bottom: 70px; white-space: pre-wrap; overflow-x: auto; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
@media screen and (max-width: 500px) { 
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  .CodeMirror-sizer { margin-left: 0px !important; }
  .CodeMirror-gutters { display: none !important; }
}
.typora-export #write { margin: 0px auto; }
#write > p:first-child, #write > ul:first-child, #write > ol:first-child, #write > pre:first-child, #write > blockquote:first-child, #write > div:first-child, #write > table:first-child { margin-top: 30px; }
#write li > table:first-child { margin-top: -20px; }
img { max-width: 100%; vertical-align: middle; }
input, button, select, textarea { color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-variant-caps: inherit; font-weight: inherit; line-height: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
::before, ::after, * { box-sizing: border-box; }
#write p, #write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write div, #write pre { width: inherit; }
#write p, #write h1, #write h2, #write h3, #write h4, #write h5, #write h6 { position: relative; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
p { -webkit-margin-before: 1rem; -webkit-margin-after: 1rem; -webkit-margin-start: 0px; -webkit-margin-end: 0px; }
.mathjax-block { margin-top: 0px; margin-bottom: 0px; -webkit-margin-before: 0rem; -webkit-margin-after: 0rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: bold; font-style: italic; }
a { cursor: pointer; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; margin: 4px 0px 0px; }
tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 80px; }
.CodeMirror-gutters { border-right-width: 0px; background-color: inherit; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
pre { white-space: pre-wrap; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; position: relative !important; background-position: inherit inherit; background-repeat: inherit inherit; }
.md-diagram-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
.md-fences .CodeMirror.CodeMirror-wrap { top: -1.6em; margin-bottom: -1.6em; }
.md-fences.mock-cm { white-space: pre-wrap; }
.show-fences-line-number .md-fences { padding-left: 0px; }
.show-fences-line-number .md-fences.mock-cm { padding-left: 40px; }
.footnotes { opacity: 0.8; font-size: 0.9rem; padding-top: 1em; padding-bottom: 1em; }
.footnotes + .footnotes { margin-top: -1em; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background-color: transparent; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; line-height: normal; font-weight: normal; text-align: left; box-sizing: content-box; direction: ltr; background-position: initial initial; background-repeat: initial initial; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li p, li .mathjax-block { margin: 0.5rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; }
@media print { 
  html, body { height: 100%; }
  .typora-export * { -webkit-print-color-adjust: exact; }
  h1, h2, h3, h4, h5, h6 { break-after: avoid-page; orphans: 2; }
  p { orphans: 4; }
  html.blink-to-pdf { font-size: 13px; }
  .typora-export #write { padding-left: 1cm; padding-right: 1cm; }
  .typora-export #write::after { height: 0px; }
  @page { margin: 20mm 0mm; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 2.86rem; white-space: pre-wrap; background-color: rgb(204, 204, 204); display: block; overflow-x: hidden; background-position: initial initial; background-repeat: initial initial; }
p .md-image:only-child { display: inline-block; width: 100%; text-align: center; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.mathjax-block { white-space: pre; overflow: hidden; width: 100%; }
p + .mathjax-block { margin-top: -1.143rem; }
.mathjax-block:not(:empty)::after { display: none; }
[contenteditable="true"]:active, [contenteditable="true"]:focus { outline: none; box-shadow: none; }
.task-list { list-style-type: none; }
.task-list-item { position: relative; padding-left: 1em; }
.task-list-item input { position: absolute; top: 0px; left: 0px; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-top-left-radius: 10px; border-top-right-radius: 10px; border-bottom-right-radius: 10px; border-bottom-left-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc::after, .md-toc-content::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); text-decoration: none; }
.md-toc-inner:hover { }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: bold; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) { 
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.md-attr { display: none; }
.md-fn-count::after { content: '.'; }
.md-tag { opacity: 0.5; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.8; font-family: monospace; }
code { text-align: left; }
h1 .md-tag, h2 .md-tag, h3 .md-tag, h4 .md-tag, h5 .md-tag, h6 .md-tag { font-weight: initial; opacity: 0.35; }
a.md-print-anchor { border: none !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: none !important; background-color: transparent !important; text-shadow: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; }
.md-inline-math .MathJax_SVG .noError { display: none !important; }
.mathjax-block .MathJax_SVG_Display { text-align: center; margin: 1em 0em; position: relative; text-indent: 0px; max-width: none; max-height: none; min-height: 0px; min-width: 100%; width: auto; display: block !important; }
.MathJax_SVG_Display, .md-inline-math .MathJax_SVG_Display { width: auto; margin: inherit; display: inline-block !important; }
.MathJax_SVG .MJX-monospace { font-family: monospace; }
.MathJax_SVG .MJX-sans-serif { font-family: sans-serif; }
.MathJax_SVG { display: inline; font-style: normal; font-weight: normal; line-height: normal; zoom: 90%; text-indent: 0px; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; }
.MathJax_SVG * { transition: none; }


/* Flowchart variables */
/* Sequence Diagram variables */
/* Gantt chart variables */
.mermaid .label {
  color: #323D47;
}
.node rect,
.node circle,
.node ellipse,
.node polygon {
  fill: #BDD5EA;
  stroke: #81B1DB;
  stroke-width: 1px;
}
.edgePath .path {
  stroke: lightgrey;
}
.edgeLabel {
  background-color: #e8e8e8;
}
.cluster rect {
  fill: #6D6D65 !important;
  rx: 4 !important;
  stroke: rgba(255, 255, 255, 0.25) !important;
  stroke-width: 1px !important;
}
.cluster text {
  fill: #F9FFFE;
}
.actor {
  stroke: #81B1DB;
  fill: #BDD5EA;
}
text.actor {
  fill: black;
  stroke: none;
}
.actor-line {
  stroke: lightgrey;
}
.messageLine0 {
  stroke-width: 1.5;
  stroke-dasharray: "2 2";
  marker-end: "url(file:///Users/absinthevoid/Library/Application%20Support/abnerworks.Typora/themes/night/#arrowhead)";
  stroke: lightgrey;
}
.messageLine1 {
  stroke-width: 1.5;
  stroke-dasharray: "2 2";
  stroke: lightgrey;
}
#arrowhead {
  fill: lightgrey !important;
}
#crosshead path {
  fill: lightgrey !important;
  stroke: lightgrey !important;
}
.messageText {
  fill: lightgrey;
  stroke: none;
}
.labelBox {
  stroke: #81B1DB;
  fill: #BDD5EA;
}
.labelText {
  fill: #323D47;
  stroke: none;
}
.loopText {
  fill: lightgrey;
  stroke: none;
}
.loopLine {
  stroke-width: 2;
  stroke-dasharray: "2 2";
  marker-end: "url(file:///Users/absinthevoid/Library/Application%20Support/abnerworks.Typora/themes/night/#arrowhead)";
  stroke: #81B1DB;
}
.note {
  stroke: rgba(255, 255, 255, 0.25);
  fill: #fff5ad;
}
.noteText {
  fill: black;
  stroke: none;
  font-family: 'trebuchet ms', verdana, arial;
  font-size: 14px;
}
/** Section styling */
.section {
  stroke: none;
  opacity: 0.2;
}
.section0 {
  fill: rgba(255, 255, 255, 0.3);
}
.section2 {
  fill: #EAE8B9;
}
.section1,
.section3 {
  fill: white;
  opacity: 0.2;
}
.sectionTitle0 {
  fill: #F9FFFE;
}
.sectionTitle1 {
  fill: #F9FFFE;
}
.sectionTitle2 {
  fill: #F9FFFE;
}
.sectionTitle3 {
  fill: #F9FFFE;
}
.sectionTitle {
  text-anchor: start;
  font-size: 11px;
  text-height: 14px;
}
/* Grid and axis */
.grid .tick {
  stroke: rgba(255, 255, 255, 0.3);
  opacity: 0.3;
  shape-rendering: crispEdges;
}
.grid .tick text {
  fill: lightgrey;
  opacity: 0.5;
}
.grid path {
  stroke-width: 0;
}
/* Today line */
.today {
  fill: none;
  stroke: #DB5757;
  stroke-width: 2px;
}
/* Task styling */
/* Default task */
.task {
  stroke-width: 1;
}
.taskText {
  text-anchor: middle;
  font-size: 11px;
}
.taskTextOutsideRight {
  fill: #323D47;
  text-anchor: start;
  font-size: 11px;
}
.taskTextOutsideLeft {
  fill: #323D47;
  text-anchor: end;
  font-size: 11px;
}
/* Specific task settings for the sections*/
.taskText0,
.taskText1,
.taskText2,
.taskText3 {
  fill: #323D47;
}
.task0,
.task1,
.task2,
.task3 {
  fill: #BDD5EA;
  stroke: rgba(255, 255, 255, 0.5);
}
.taskTextOutside0,
.taskTextOutside2 {
  fill: lightgrey;
}
.taskTextOutside1,
.taskTextOutside3 {
  fill: lightgrey;
}
/* Active task */
.active0,
.active1,
.active2,
.active3 {
  fill: #81B1DB;
  stroke: rgba(255, 255, 255, 0.5);
}
.activeText0,
.activeText1,
.activeText2,
.activeText3 {
  fill: #323D47 !important;
}
/* Completed task */
.done0,
.done1,
.done2,
.done3 {
  fill: lightgrey;
}
.doneText0,
.doneText1,
.doneText2,
.doneText3 {
  fill: #323D47 !important;
}
/* Tasks on the critical line */
.crit0,
.crit1,
.crit2,
.crit3 {
  stroke: #E83737;
  fill: #E83737;
  stroke-width: 2;
}
.activeCrit0,
.activeCrit1,
.activeCrit2,
.activeCrit3 {
  stroke: #E83737;
  fill: #81B1DB;
  stroke-width: 2;
}
.doneCrit0,
.doneCrit1,
.doneCrit2,
.doneCrit3 {
  stroke: #E83737;
  fill: lightgrey;
  stroke-width: 1;
  cursor: pointer;
  shape-rendering: crispEdges;
}
.doneCritText0,
.doneCritText1,
.doneCritText2,
.doneCritText3 {
  fill: lightgrey !important;
}
.activeCritText0,
.activeCritText1,
.activeCritText2,
.activeCritText3 {
  fill: #323D47 !important;
}
.titleText {
  text-anchor: middle;
  font-size: 18px;
  fill: lightgrey;
}
/*


*/
.node text {
  font-family: 'trebuchet ms', verdana, arial;
  font-size: 14px;
}
div.mermaidTooltip {
  position: absolute;
  text-align: center;
  max-width: 200px;
  padding: 2px;
  font-family: 'trebuchet ms', verdana, arial;
  font-size: 12px;
  background: #6D6D65;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 2px;
  pointer-events: none;
  z-index: 100;
}
@import "";

html {
    font-size: 16px;
}

html,
body {
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    background: #363B40;
    fill: currentColor;
}

#write {
    max-width: 914px;
    padding-top: 20px;
}

html,
body,
button,
input,
select,
textarea,
div.code-tooltip-content {
    color: #b8bfc6;
}

div.code-tooltip,
.md-hover-tip .md-arrow:after {
    background: #4B535A;
}

.popover.bottom > .arrow:after {
    border-bottom-color: #4B535A;
}

html,
body,
button,
input,
select,
textarea {
    font-style: normal;
    line-height: 1.625rem;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

hr {
    height: 2px;
    border: 0;
    margin: 50px 0 !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Lucida Grande", "Corbal", Georgia, serif;
    font-weight: normal;
    clear: both;
    -ms-word-wrap: break-word;
    word-wrap: break-word;
    margin: 0;
    padding: 0;
    color: #DEDEDE
}

h1 {
    font-size: 2.5rem;
    /* 36px */
    line-height: 2.75rem;
    /* 40px */
    margin-bottom: 1.5rem;
    /* 24px */
    letter-spacing: -1.5px;
}

h2 {
    font-size: 1.63rem;
    /* 24px */
    line-height: 1.875rem;
    /* 30px */
    margin-bottom: 1.5rem;
    /* 24px */
    letter-spacing: -1px;
    font-weight: bold;
}

h3 {
    font-size: 1.17rem;
    /* 18px */
    line-height: 1.5rem;
    /* 24px */
    margin-bottom: 1.5rem;
    /* 24px */
    letter-spacing: -1px;
    font-weight: bold;
}

h4 {
    font-size: 1.12rem;
    /* 16px */
    line-height: 1.375rem;
    /* 22px */
    margin-bottom: 1.5rem;
    /* 24px */
    color: white;
}

h5 {
    font-size: 0.97rem;
    /* 16px */
    line-height: 1.25rem;
    /* 22px */
    margin-bottom: 1.5rem;
    /* 24px */
    font-weight: bold;
}

h6 {
    font-size: 0.93rem;
    /* 16px */
    line-height: 1rem;
    /* 16px */
    margin-bottom: 0.75rem;
    color: white;
}

@media (min-width: 980px) {
    #write h3:before,
    #write h4:before,
    #write h5:before,
    #write h6:before {
        color: #ddd;
        border: 1px solid #ddd;
        border-radius: 3px;
        position: absolute;
        left: -1.642857143rem;
        top: .357142857rem;
        float: left;
        font-size: 9px;
        padding-left: 2px;
        padding-right: 2px;
        vertical-align: bottom;
        font-weight: normal;
        line-height: normal;
    }

    #write h3:before {
        content: 'h3';
    }

    #write h4:before {
        content: 'h4';
    }

    #write h5:before {
        content: 'h5';
        top: 0px;
    }

    #write h6:before {
        content: 'h6';
        top: 0px;
    }
}

a {
    text-decoration: none;
    outline: 0;
}

a:hover {
    outline: 0;
}

a:focus {
    outline: thin dotted;
}

p {
    -ms-word-wrap: break-word;
    word-wrap: break-word;
}

p,
ul,
dd,
ol,
hr,
address,
pre,
table,
iframe,
.wp-caption,
.wp-audio-shortcode,
.wp-video-shortcode {
    margin-top: 0;
    margin-bottom: 1.5rem;
    /* 24px */
}

audio:not([controls]) {
    display: none;
}

[hidden] {
    display: none;
}

::-moz-selection {
    background: #4a89dc;
    color: #fff;
    text-shadow: none;
}

*.in-text-selection,
::selection {
    background: #4a89dc;
    color: #fff;
    text-shadow: none;
}

ul,
ol {
    padding: 0 0 0 1.875rem;
    /* 30px */
}

ul {
    list-style: square;
}

ol {
    list-style: decimal;
}

ul ul,
ol ol,
ul ol,
ol ul {
    margin: 0;
}

b,
th,
dt,
strong {
    font-weight: bold;
}

i,
em,
dfn,
cite {
    font-style: italic;
}

blockquote {
    padding-left: 1.875rem;
    margin: 0 0 1.875rem 1.875rem;
    border-left: solid 2px #474d54;
    padding-left: 30px;
    margin-top: 35px;
}

pre,
code,
kbd,
tt,
var {
    background: rgba(0, 0, 0, 0.05);
    font-size: 0.875rem;
    font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

pre.md-fences {
    padding: 10px 30px;
    margin-bottom: 20px;
    border: 1px solid;
}

.md-fences .code-tooltip {
    bottom: -3.2em;
}

code,
kbd,
tt,
var {
    padding: 2px 5px;
}

table {
    max-width: 100%;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

th,
td {
    padding: 5px 10px;
    vertical-align: top;
}

a {
    -webkit-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
}

hr {
    background: #474d54;
    /* variable */
}

#write>*:first-child {
    margin-top: 40px;
}

h1 {
    margin-top: 2em;
}

a {
    color: #e0e0e0;
    text-decoration: underline;
}

a:hover {
    color: #fff;
}

b,
th,
dt,
strong {
    color: #DEDEDE;
    /* variable */
}

mark {
    background: #D3D40E;
}

blockquote {
    color: #9DA2A6;
}

table a {
    color: #DEDEDE;
    /* variable */
}

th,
td {
    border: solid 1px #474d54;
    /* variable */
}

.task-list {
    padding-left: 0;
}

.task-list-item {
    padding-left: 1.25rem;
}

.task-list-item input {
    top: 0.1875rem;
}

.task-list-item input:before {
    content: "";
    display: inline-block;
    width: 0.875rem;
    height: 0.875rem;
    vertical-align: middle;
    text-align: center;
    border: 1px solid #b8bfc6;
    background-color: #363B40;
    margin-top: -0.4375rem;
}

.task-list-item input:checked:before,
.task-list-item input[checked]:before {
    content: '\221A';
    /*◘*/
    font-size: 0.625rem;
    line-height: 0.625rem;
    color: #DEDEDE;
}

/** markdown source **/
.cm-s-typora-default .cm-header, 
.cm-s-typora-default .cm-property
{
    color: #cebcca;
}

.CodeMirror.cm-s-typora-default div.CodeMirror-cursor{
    border-left: 3px solid #b8bfc6;
}

.cm-s-typora-default .cm-comment {
    color: #9FB1FF;
}

.cm-s-typora-default .cm-string {
    color: #A7A7D9
}

.cm-s-typora-default .cm-atom, .cm-s-typora-default .cm-number {
    color: #848695;
    font-style: italic;
}

.cm-s-typora-default .cm-link {
    color: #95B94B;
}

.cm-s-typora-default .CodeMirror-activeline-background {
    background: rgba(51, 51, 51, 0.72);
}

/** code highlight */

.cm-s-inner .cm-variable,
.cm-s-inner .cm-operator,
.cm-s-inner .cm-property {
    color: #b8bfc6;
}

.cm-s-inner .cm-keyword {
    color: #C88FD0;
}

.cm-s-inner .cm-tag {
    color: #7DF46A;
}

.cm-s-inner .cm-attribute {
    color: #7575E4;
}

.CodeMirror div.CodeMirror-cursor {
    border-left: 1px solid #b8bfc6;
    z-index: 3;
}

.cm-s-inner .cm-string {
    color: #D26B6B;
}

.cm-s-inner .cm-comment,
.cm-s-inner.cm-comment {
    color: #DA924A;
}

.cm-s-inner .cm-header,
.cm-s-inner .cm-def,
.cm-s-inner.cm-header,
.cm-s-inner.cm-def {
    color: #8d8df0;
}

.cm-s-inner .cm-quote,
.cm-s-inner.cm-quote {
    color: #57ac57;
}

.cm-s-inner .cm-hr {
    color: #d8d5d5;
}

.cm-s-inner .cm-link {
    color: #d3d3ef;
}

.cm-s-inner .cm-negative {
    color: #d95050;
}

.cm-s-inner .cm-positive {
    color: #50e650;
}

.cm-s-inner .cm-string-2 {
    color: #f50;
}

.cm-s-inner .cm-meta,
.cm-s-inner .cm-qualifier {
    color: #b7b3b3;
}

.cm-s-inner .cm-builtin {
    color: #694ea7;
}

.cm-s-inner .cm-bracket {
    color: #997;
}

.cm-s-inner .cm-atom,
.cm-s-inner.cm-atom {
    color: #84B6CB;
}

.cm-s-inner .cm-number {
    color: #64AB8F;
}

.cm-s-inner .cm-variable {
    color: #b8bfc6;
}

.cm-s-inner .cm-variable-2 {
    color: #9FBAD5;
}

.cm-s-inner .cm-variable-3 {
    color: #1cc685;
}

.CodeMirror-selectedtext {
    background: #4a89dc;
    color: #fff !important;
    text-shadow: none;
}

.CodeMirror-gutters {
    background: transparent;
    border-right: 1px solid transparent;
}

/** quick open **/
.auto-suggest-container {
    border: 0px;
    background-color: #525C65;
}

#typora-quick-open {
    background-color: #525C65;
}

#typora-quick-open input{
    background-color: #525C65;
    border: 0;
    border-bottom: 1px solid grey;
}

.typora-quick-open-item {
    background-color: inherit;
    color: inherit;
}

.typora-quick-open-item.active {
    background-color: #4D8BDB;
    color: white;
}

.typora-search-spinner > div {
  background-color: #fff;
}

#write pre.md-meta-block {
    border-bottom: 1px dashed #ccc;
    background: transparent;
    padding-bottom: 0.6em;
    line-height: 1.2em;
}

.btn,
.btn .btn-default {
    background: transparent;
    color: #b8bfc6;
}

.md-table-edit {
    border-top: 1px solid gray;
    background-color: #363B40;
}

.popover-title {
    background: transparent;
}

.md-image>.md-meta {
    color: #BBBBBB;
    background: transparent;
}

.md-expand.md-image>.md-meta {
    color: #DDD;
}

#write>h3:before,
#write>h4:before,
#write>h5:before,
#write>h6:before {
    border: none;
    border-radius: 0px;
    color: #888;
    text-decoration: underline;
    left: -1.4rem;
    top: 0.2rem;
}

#write>h3.md-focus:before {
    top: 2px;
}

#write>h4.md-focus:before {
    top: 2px;
}

.md-toc-item {
    color: #A8C2DC;
}

#write div.md-toc-tooltip {
    background-color: #363B40;
}

#outline-dropmenu .btn:hover,
#outline-dropmenu .btn:focus,
.md-toc .btn:hover,
.md-toc .btn:focus {
    color: white;
}

#outline-dropmenu {
    background: rgba(50, 54, 59, 0.93);
    border: 1px solid rgba(253, 253, 253, 0.15);
}

#outline-dropmenu .divider {
    background-color: #b8bfc6;
}

.outline-expander:before {
    top: 2px;
}

.pin-outline #outline-dropmenu {
    background: inherit;
    box-shadow: none;
    border-right: 1px dashed;
}

.pin-outline #outline-dropmenu:hover .outline-title-wrapper {
    border-left: 1px dashed;
}

.outline-title-wrapper .btn {
    color: inherit;
}

.outline-item:hover {
    border-color: #363B40;
    background-color: #363B40;
    color: white;
}

h1.md-focus .md-attr,
h2.md-focus .md-attr,
h3.md-focus .md-attr,
h4.md-focus .md-attr,
h5.md-focus .md-attr,
h6.md-focus .md-attr,
.md-header-span .md-attr {
    color: #8C8E92;
    display: inline;
}

.md-comment {
    color: #5a95e3;
    opacity: 1;
}

.md-inline-math g,
.md-inline-math svg {
    stroke: #b8bfc6 !important;
    fill: #b8bfc6 !important;
}

[md-inline='inline_math'] {
    color: #9CB2E9;
}

#math-inline-preview .md-arrow:after {
    background: black;
}

.modal-content {
    background: #292c2f;
    border: 0;
}

.modal-title {
    font-size: 1.5em;
}

.modal-content input {
    background-color: rgba(26, 21, 21, 0.51);
    color: white;
}

.modal-content .input-group-addon {
    background-color: rgba(0, 0, 0, 0.17);
    color: white;
}

.modal-backdrop {
    background-color: rgba(174, 174, 174, 0.7);
}

.modal-content .btn-primary {
    border-color: #6dc1e7;
}

.md-table-resize-popover {
    background-color: #4B535A;
}

.form-inline .input-group .input-group-addon {
    color: white;
}

#md-searchpanel {
    border-bottom: 1px dashed grey;
}

/** UI for electron */

.context-menu {
    background-color: #42464A;
}

.context-menu.dropdown-menu > li > a:hover, 
.context-menu.dropdown-menu > li > a:focus {
    background-color: inherit;
}

.context-menu.dropdown-menu .divider {
    background-color: #777777;
}

footer {
    color: inherit;
}

@media (max-width: 1000px) {
    footer {
        border-top: none;
    }
    footer:hover {
        color: inherit;
    }
}

#file-info-file-path .file-info-field-value:hover {
    background-color: #555;
    color: #dedede;
}

.megamenu-content,
.megamenu-opened header {
    background: #292c2f;
}

.megamenu-menu-list li a.active,
.megamenu-menu-list li a:hover,
.long-btn:hover {
    background-color: #4182c4;
    color: white;
    border-color: #4182c4;
}

.megamenu-menu-panel h2,
.megamenu-menu-panel h1,
.long-btn {
    color: inherit;
}

.megamenu-menu-panel input[type='text'] {
    background: inherit;
    border: 0;
    border-bottom: 1px solid;
}

#recent-file-panel-action-btn {
    background: inherit;
    border: 1px grey solid;
}

.megamenu-menu-panel .btn:hover, 
.megamenu-menu-panel .btn:focus, 
.megamenu-menu-panel .btn.focus {
    color: white;
}

.megamenu-menu-panel .dropdown-menu > li > a {
    color: inherit;
    background-color: #2F353A;
    text-decoration: none;
}

.megamenu-menu-panel table td:nth-child(1) {
    color: inherit;
    font-weight: bold;
}

.megamenu-menu-panel tbody tr:hover td:nth-child(1) {
    color: white;
}

.modal-footer .btn-default, 
.modal-footer .btn-primary,
.modal-footer .btn-default:not(:hover) {
    border: 1px solid;
    border-color: transparent;
}

.btn-default:hover, .btn-default:focus, .btn-default.focus, .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default {
    color: white;
    border: 1px solid #ddd;
    background-color: inherit;
}

.modal-header {
    border-bottom: 0;
}

.modal-footer {
    border-top: 0;
}

#recent-file-panel tbody tr:nth-child(2n-1) {
    background-color: transparent !important;
}

.megamenu-menu-panel tbody tr:hover td:nth-child(2) {
    color: inherit;
}

.megamenu-menu-panel .btn {
    border: 1px solid #eee;
    background: transparent;
}

.mouse-hover .toolbar-icon.btn:hover,
#w-full.mouse-hover,
#w-pin.mouse-hover {
    background-color: inherit;
}

::-webkit-scrollbar {
    width: 5px;
}

::-webkit-scrollbar-thumb:vertical {
    background: rgba(250, 250, 250, 0.3);
}

::-webkit-scrollbar-thumb:vertical:active {
    background: rgba(250, 250, 250, 0.5);
}

#w-unpin {
    background-color: #4182c4;
}

#top-titlebar, #top-titlebar * {
    color: white;
}

.typora-sourceview-on #toggle-sourceview-btn,
#footer-word-count:hover,
.show-word-count #footer-word-count {
    background: #333333;
}

#toggle-sourceview-btn:hover {
    color: #eee;
    background: #333333;
}

/** focus mode */
.on-focus-mode .md-end-block:not(.md-focus):not(.md-focus-container) * {
    color: #686868 !important;
}

.on-focus-mode .md-end-block:not(.md-focus) img,
.on-focus-mode .task-list-item:not(.md-focus-container)>input {
    opacity: #686868 !important;
}

.on-focus-mode li[cid]:not(.md-focus-container){
    color: #686868;
}

.on-focus-mode .md-fences.md-focus .CodeMirror-code>*:not(.CodeMirror-activeline) *,
.on-focus-mode .CodeMirror.cm-s-inner:not(.CodeMirror-focused) * {
    color: #686868 !important;
}

.on-focus-mode .md-focus,
.on-focus-mode .md-focus-container {
    color: #fff;
}

.on-focus-mode #typora-source .CodeMirror-code>*:not(.CodeMirror-activeline) * {
    color: #686868 !important;
}


/*diagrams*/
#write .md-focus .md-diagram-panel {
    border: 1px solid #ddd;
    margin-left: -30px;
}

.md-diagram-panel-error {
    color: #f1908e;
}

body {
  -webkit-user-select: none;
     -moz-user-select: -moz-none;
      -ms-user-select: none;
          user-select: none;
}


</style>
</head>
<body class='typora-export' oncopy="return false" oncut="return false" onpaste="return false">
<div  id='write'  class = 'is-mac'><h1><a name='header-c24' class='md-header-anchor '></a>1, 4</h1><pre class="md-fences md-end-block" lang="c++"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-hscrollbar" style="left: 0px; min-height: 18px;"><div style="height: 100%; min-height: 1px; width: 0px;"></div></div><div class="CodeMirror-vscrollbar" style="min-width: 18px;"><div style="min-width: 1px; height: 0px;"></div></div><div class="CodeMirror-scrollbar-filler"></div><div class="CodeMirror-gutter-filler"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; min-height: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines"><div style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><pre class=""><span style="padding-right: 0.1px;"><span class="cm-comment">/**</span></span></pre></div><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* name: Li Gen Ling</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* student number: 3015201040</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* homework number: 4</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">*/</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#ifndef __INTLIST_H_</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#define __INTLIST_H_</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iostream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;vector&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">class</span> <span class="cm-def">IntList</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">friend</span> <span class="cm-variable-3">bool</span> <span class="cm-keyword">operator</span><span class="cm-operator">==</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">friend</span> <span class="cm-variable-3">bool</span> <span class="cm-keyword">operator</span><span class="cm-operator">!=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">friend</span> <span class="cm-variable">IntList</span> <span class="cm-keyword">operator</span><span class="cm-operator">+</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">friend</span> <span class="cm-variable">IntList</span> <span class="cm-keyword">operator</span><span class="cm-operator">-</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">friend</span> <span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&lt;&lt;</span>(<span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ost</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">friend</span> <span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&gt;&gt;</span>(<span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ist</span>, <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">public</span>:</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">IntList</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">numVals</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">val</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">IntList</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">~IntList</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">int</span> <span class="cm-variable">size</span>() <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">void</span> <span class="cm-variable">resize</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">n</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">val</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">void</span> <span class="cm-variable">push_back</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">val</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">void</span> <span class="cm-variable">print</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">int</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span>[](<span class="cm-keyword">const</span> <span class="cm-variable-3">int</span> <span class="cm-variable">index</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">const</span> <span class="cm-variable-3">int</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span>[](<span class="cm-keyword">const</span> <span class="cm-variable-3">int</span> <span class="cm-variable">index</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">private</span>:</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;</span> <span class="cm-variable">storage</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">IntList</span>(<span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;&amp;</span> <span class="cm-variable">input_storage</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">};</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-keyword">operator</span><span class="cm-operator">==</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-keyword">operator</span><span class="cm-operator">!=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">IntList</span> <span class="cm-keyword">operator</span><span class="cm-operator">+</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">IntList</span> <span class="cm-keyword">operator</span><span class="cm-operator">-</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&lt;&lt;</span>(<span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ost</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&gt;&gt;</span>(<span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ist</span>, <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#endif</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; top: 0px;"></div><div class="CodeMirror-gutters" style="display: none; height: 1092px;"></div></div></div></pre><pre class="md-fences md-end-block" lang="c++"> <div class="CodeMirror cm-s-inner CodeMirror-wrap  " lang="c++"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-hscrollbar" style="left: 0px; min-height: 18px;"><div style="height: 100%; min-height: 1px; width: 0px;"></div></div><div class="CodeMirror-vscrollbar" style="min-width: 18px;"><div style="min-width: 1px; height: 0px;"></div></div><div class="CodeMirror-scrollbar-filler"></div><div class="CodeMirror-gutter-filler"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; min-height: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines"><div style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><pre class=""><span style="padding-right: 0.1px;"><span class="cm-comment">/**</span></span></pre></div><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* name: Li Gen Ling</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* student number: 3015201040</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* homework number: 4</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">*/</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include "IntList.h"</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iostream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;vector&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-def">IntList::IntList</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">numVals</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">val</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">numVals</span>; <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">val</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-def">IntList::IntList</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span> <span class="cm-operator">=</span> <span class="cm-variable">il</span>.<span class="cm-variable">storage</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">IntList::</span><span class="cm-def">~IntList</span>()</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">clear</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">IntList::operator</span><span class="cm-operator">=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span> <span class="cm-operator">=</span> <span class="cm-variable">il</span>.<span class="cm-variable">storage</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">IntList::size</span>() <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">size</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">void</span> <span class="cm-def">IntList::resize</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">n</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">val</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-variable">n</span> <span class="cm-operator">&gt;</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">size</span>()) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">n</span>; <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">val</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> <span class="cm-keyword">if</span> (<span class="cm-variable">n</span> <span class="cm-operator">&lt;</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">size</span>()) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">size</span>() <span class="cm-operator">-</span> <span class="cm-number">1</span>; <span class="cm-variable">i</span> <span class="cm-operator">!=</span> <span class="cm-variable">n</span> <span class="cm-operator">-</span> <span class="cm-number">1</span>; <span class="cm-operator">--</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">pop_back</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">void</span> <span class="cm-def">IntList::push_back</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">val</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">val</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">void</span> <span class="cm-def">IntList::print</span>()</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">std::cout</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">size</span>() <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">":"</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::cout</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">" "</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">std::cout</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::endl</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-def">IntList::IntList</span>(<span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;&amp;</span> <span class="cm-variable">input_storage</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span> <span class="cm-operator">=</span> <span class="cm-variable">input_storage</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">int</span><span class="cm-operator">&amp;</span> <span class="cm-variable">IntList::operator</span>[](<span class="cm-keyword">const</span> <span class="cm-variable-3">int</span> <span class="cm-variable">index</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>[<span class="cm-variable">index</span>];</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">const</span> <span class="cm-variable-3">int</span><span class="cm-operator">&amp;</span> <span class="cm-variable">IntList::operator</span>[](<span class="cm-keyword">const</span> <span class="cm-variable-3">int</span> <span class="cm-variable">index</span>) <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">storage</span>[<span class="cm-variable">index</span>];</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-keyword">operator</span><span class="cm-operator">==</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span> <span class="cm-operator">==</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-keyword">operator</span><span class="cm-operator">!=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span> <span class="cm-operator">!=</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">IntList</span> <span class="cm-keyword">operator</span><span class="cm-operator">+</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>() <span class="cm-operator">==</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>()) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">+</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>]);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">IntList</span>(<span class="cm-variable">result</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> <span class="cm-keyword">if</span> (<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>() <span class="cm-operator">&lt;</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>()) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">+</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>]);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">+</span> <span class="cm-number">0</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">IntList</span>(<span class="cm-variable">result</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">+</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>]);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">+</span> <span class="cm-number">0</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">IntList</span>(<span class="cm-variable">result</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">IntList</span> <span class="cm-keyword">operator</span><span class="cm-operator">-</span>(<span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il2</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>() <span class="cm-operator">==</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>()) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">-</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>]);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">IntList</span>(<span class="cm-variable">result</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> <span class="cm-keyword">if</span> (<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>() <span class="cm-operator">&lt;</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>()) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">-</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>]);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-number">0</span> <span class="cm-operator">-</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>]);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">IntList</span>(<span class="cm-variable">result</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::vector</span><span class="cm-operator">&lt;</span><span class="cm-variable-3">int</span><span class="cm-operator">&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">-</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>]);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-variable">il2</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">result</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">il1</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">-</span> <span class="cm-number">0</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">IntList</span>(<span class="cm-variable">result</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&lt;&lt;</span>(<span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ost</span>, <span class="cm-keyword">const</span> <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">ost</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">il</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>() <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">":"</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">il</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">size</span>(); <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ost</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">il</span>.<span class="cm-variable">storage</span>[<span class="cm-variable">i</span>] <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">" "</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">ost</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&gt;&gt;</span>(<span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ist</span>, <span class="cm-variable">IntList</span><span class="cm-operator">&amp;</span> <span class="cm-variable">il</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">il</span>.<span class="cm-variable">storage</span>.<span class="cm-variable">clear</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">int</span> <span class="cm-variable">size</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">ist</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">size</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">int</span> <span class="cm-variable">val</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>; <span class="cm-variable">i</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">size</span>; <span class="cm-operator">++</span><span class="cm-variable">i</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ist</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">val</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">il</span>.<span class="cm-variable">push_back</span>(<span class="cm-variable">val</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">ist</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; top: 0px;"></div><div class="CodeMirror-gutters" style="display: none; height: 4394px;"></div></div></div></pre><h1><a name='header-c33' class='md-header-anchor '></a>2</h1><pre class="md-fences md-end-block" lang="c++"> <div class="CodeMirror cm-s-inner CodeMirror-wrap  " lang="c++"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-hscrollbar" style="left: 0px; min-height: 18px;"><div style="height: 100%; min-height: 1px; width: 0px;"></div></div><div class="CodeMirror-vscrollbar" style="min-width: 18px;"><div style="min-width: 1px; height: 0px;"></div></div><div class="CodeMirror-scrollbar-filler"></div><div class="CodeMirror-gutter-filler"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; min-height: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines"><div style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#ifndef MYDATE_H</span></span></pre></div><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#define MYDATE_H</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-comment">// File name: MyDate.h</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-comment">// Author: 李根灵</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-comment">// Student Number: 3015201040</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-comment">// email: meabsinthe@gmail.com</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iostream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iomanip&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;time.h&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;sstream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">class</span> <span class="cm-def">MyDate</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">private</span>:</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">time_t</span> <span class="cm-variable">seconds</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">int</span> <span class="cm-variable">circle_years</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">const</span> <span class="cm-keyword">static</span> <span class="cm-variable-3">long</span> <span class="cm-variable">TIMEZONE_OFFSET</span> <span class="cm-operator">=</span> <span class="cm-number">60</span> <span class="cm-operator">*</span> <span class="cm-number">60</span> <span class="cm-operator">*</span> <span class="cm-number">8</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">MyDate</span>(<span class="cm-variable-3">long</span> <span class="cm-variable">inputSeconds</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">circle_years</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">public</span>:</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">MyDate</span>(<span class="cm-variable-3">long</span> <span class="cm-variable">inputSeconds</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">MyDate</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">year</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">month</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">day</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">bool</span> <span class="cm-variable">equals</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">bool</span> <span class="cm-variable">lessThan</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">bool</span> <span class="cm-variable">lessThanOrEquals</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">bool</span> <span class="cm-variable">greaterThan</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">bool</span> <span class="cm-variable">greaterThanOrEquals</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">MyDate</span> <span class="cm-variable">add</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">day</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">MyDate</span> <span class="cm-variable">subtract</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">day</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">int</span> <span class="cm-variable">subtract</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">std::string</span> <span class="cm-variable">toString</span>() <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  </span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  </span></pre><pre class=""><span style="padding-right: 0.1px;">};</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#endif</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; top: 0px;"></div><div class="CodeMirror-gutters" style="display: none; height: 1222px;"></div></div></div></pre><pre class="md-fences md-end-block" lang="c++"> <div class="CodeMirror cm-s-inner CodeMirror-wrap  " lang="c++"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-hscrollbar" style="left: 0px; min-height: 18px;"><div style="height: 100%; min-height: 1px; width: 0px;"></div></div><div class="CodeMirror-vscrollbar" style="min-width: 18px;"><div style="min-width: 1px; height: 0px;"></div></div><div class="CodeMirror-scrollbar-filler"></div><div class="CodeMirror-gutter-filler"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; min-height: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines"><div style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include "MyDate.h"</span></span></pre></div><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iostream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iomanip&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;time.h&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;sstream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-def">MyDate::MyDate</span>(<span class="cm-variable-3">long</span> <span class="cm-variable">inputSeconds</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">circle_years</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">seconds</span> <span class="cm-operator">=</span> <span class="cm-variable">inputSeconds</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">circle_years</span> <span class="cm-operator">=</span> <span class="cm-variable">circle_years</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-def">MyDate::MyDate</span>(<span class="cm-variable-3">long</span> <span class="cm-variable">inputSeconds</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">seconds</span> <span class="cm-operator">=</span> <span class="cm-variable">inputSeconds</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-def">MyDate::MyDate</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">year</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">month</span>, <span class="cm-variable-3">int</span> <span class="cm-variable">day</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">int</span> <span class="cm-variable">count</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-variable">year</span> <span class="cm-operator">&lt;</span> <span class="cm-number">1970</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">do</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">count</span> <span class="cm-operator">=</span> <span class="cm-variable">count</span> <span class="cm-operator">-</span> <span class="cm-number">1</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">year</span> <span class="cm-operator">=</span> <span class="cm-variable">year</span> <span class="cm-operator">+</span> <span class="cm-number">400</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  } <span class="cm-keyword">while</span> (<span class="cm-variable">year</span> <span class="cm-operator">&lt;</span> <span class="cm-number">1970</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">circle_years</span> <span class="cm-operator">=</span> <span class="cm-variable">count</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">struct</span> <span class="cm-def">tm</span> <span class="cm-def">tmDate</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">tmDate</span>.<span class="cm-variable">tm_year</span> <span class="cm-operator">=</span> <span class="cm-variable">year</span> <span class="cm-operator">-</span> <span class="cm-number">1900</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">tmDate</span>.<span class="cm-variable">tm_mon</span> <span class="cm-operator">=</span> <span class="cm-variable">month</span> <span class="cm-operator">-</span> <span class="cm-number">1</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">tmDate</span>.<span class="cm-variable">tm_mday</span> <span class="cm-operator">=</span> <span class="cm-variable">day</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">tmDate</span>.<span class="cm-variable">tm_hour</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">tmDate</span>.<span class="cm-variable">tm_min</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">tmDate</span>.<span class="cm-variable">tm_sec</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">tmDate</span>.<span class="cm-variable">tm_isdst</span> <span class="cm-operator">=</span> <span class="cm-operator">-</span><span class="cm-number">1</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">seconds</span> <span class="cm-operator">=</span> <span class="cm-variable">mktime</span>(<span class="cm-operator">&amp;</span><span class="cm-variable">tmDate</span>) <span class="cm-operator">+</span> <span class="cm-variable">TIMEZONE_OFFSET</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-def">MyDate::equals</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">seconds</span> <span class="cm-operator">==</span> <span class="cm-variable">date</span>.<span class="cm-variable">seconds</span> <span class="cm-operator">&amp;&amp;</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">circle_years</span> <span class="cm-operator">==</span> <span class="cm-variable">date</span>.<span class="cm-variable">circle_years</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">true</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">false</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-def">MyDate::lessThan</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">circle_years</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">date</span>.<span class="cm-variable">circle_years</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">true</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> <span class="cm-keyword">if</span> (<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">circle_years</span> <span class="cm-operator">==</span> <span class="cm-variable">date</span>.<span class="cm-variable">circle_years</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">seconds</span> <span class="cm-operator">&lt;</span> <span class="cm-variable">date</span>.<span class="cm-variable">seconds</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">true</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">false</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">false</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  </span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-def">MyDate::lessThanOrEquals</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">lessThan</span>(<span class="cm-variable">date</span>) <span class="cm-operator">||</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">equals</span>(<span class="cm-variable">date</span>)) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">true</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">false</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-def">MyDate::greaterThan</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-operator">!</span><span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">lessThanOrEquals</span>(<span class="cm-variable">date</span>)) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">true</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">false</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">bool</span> <span class="cm-def">MyDate::greaterThanOrEquals</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">greaterThan</span>(<span class="cm-variable">date</span>) <span class="cm-operator">||</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">equals</span>(<span class="cm-variable">date</span>)) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">true</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-atom">false</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">MyDate</span> <span class="cm-def">MyDate::add</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">day</span>) <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">MyDate</span> <span class="cm-variable">result</span>(<span class="cm-variable">seconds</span> <span class="cm-operator">+</span> <span class="cm-variable">day</span> <span class="cm-operator">*</span> <span class="cm-number">86400</span>, <span class="cm-variable">circle_years</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">MyDate</span> <span class="cm-def">MyDate::subtract</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">day</span>) <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">MyDate</span> <span class="cm-variable">result</span>(<span class="cm-variable">seconds</span> <span class="cm-operator">-</span> <span class="cm-variable">day</span> <span class="cm-operator">*</span> <span class="cm-number">86400</span>, <span class="cm-variable">circle_years</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">MyDate::subtract</span>(<span class="cm-variable">MyDate</span> <span class="cm-variable">date</span>) <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> (<span class="cm-variable-3">int</span>) ((<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">seconds</span> <span class="cm-operator">-</span> <span class="cm-variable">date</span>.<span class="cm-variable">seconds</span> <span class="cm-operator">+</span> (<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">circle_years</span> <span class="cm-operator">-</span> <span class="cm-variable">date</span>.<span class="cm-variable">circle_years</span>) <span class="cm-operator">*</span> <span class="cm-number">31536000</span> <span class="cm-operator">*</span> <span class="cm-number">400</span>)  <span class="cm-operator">/</span> <span class="cm-number">86400</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::string</span> <span class="cm-def">MyDate::toString</span>() <span class="cm-keyword">const</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">lessThan</span>(<span class="cm-variable">MyDate</span>(<span class="cm-number">1752</span>, <span class="cm-number">9</span>, <span class="cm-number">14</span>)) <span class="cm-operator">&amp;&amp;</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">greaterThan</span>(<span class="cm-variable">MyDate</span>(<span class="cm-number">1582</span>, <span class="cm-number">10</span>, <span class="cm-number">14</span>))) {</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">MyDate</span> <span class="cm-variable">realResult</span> <span class="cm-operator">=</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">subtract</span>(<span class="cm-number">11</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">struct</span> <span class="cm-def">tm</span> <span class="cm-operator">*</span><span class="cm-variable">tmDate</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">tmDate</span> <span class="cm-operator">=</span> <span class="cm-variable">localtime</span>(<span class="cm-operator">&amp;</span><span class="cm-variable">realResult</span>.<span class="cm-variable">seconds</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::stringstream</span> <span class="cm-variable">ss</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">4</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_year</span> <span class="cm-operator">+</span> <span class="cm-number">1900</span> <span class="cm-operator">+</span> <span class="cm-variable">circle_years</span> <span class="cm-operator">*</span> <span class="cm-number">400</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"-"</span> </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">2</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_mon</span> <span class="cm-operator">+</span> <span class="cm-number">1</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"-"</span> </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">2</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_mday</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::string</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">struct</span> <span class="cm-def">tm</span> <span class="cm-operator">*</span><span class="cm-variable">tmDate</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">tmDate</span> <span class="cm-operator">=</span> <span class="cm-variable">localtime</span>(<span class="cm-operator">&amp;</span><span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">seconds</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::stringstream</span> <span class="cm-variable">ss</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_year</span> <span class="cm-operator">+</span> <span class="cm-number">1900</span> <span class="cm-operator">+</span> <span class="cm-variable">circle_years</span> <span class="cm-operator">*</span> <span class="cm-number">400</span> <span class="cm-operator">&lt;</span> <span class="cm-number">0</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"-"</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">4</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-operator">-</span><span class="cm-number">1</span> <span class="cm-operator">*</span> (<span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_year</span> <span class="cm-operator">+</span> <span class="cm-number">1900</span> <span class="cm-operator">+</span> <span class="cm-variable">circle_years</span> <span class="cm-operator">*</span> <span class="cm-number">400</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"-"</span> </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">2</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_mon</span> <span class="cm-operator">+</span> <span class="cm-number">1</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"-"</span> </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">2</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_mday</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">4</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_year</span> <span class="cm-operator">+</span> <span class="cm-number">1900</span> <span class="cm-operator">+</span> <span class="cm-variable">circle_years</span> <span class="cm-operator">*</span> <span class="cm-number">400</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"-"</span> </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">2</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_mon</span> <span class="cm-operator">+</span> <span class="cm-number">1</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"-"</span> </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setfill</span> (<span class="cm-string">'0'</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setw</span>(<span class="cm-number">2</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">tmDate</span><span class="cm-operator">-&gt;</span><span class="cm-variable">tm_mday</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  </span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">std::string</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; top: 0px;"></div><div class="CodeMirror-gutters" style="display: none; height: 3718px;"></div></div></div></pre><h1><a name='header-c48' class='md-header-anchor '></a>3</h1><pre class="md-fences md-end-block" lang="c++"> <div class="CodeMirror cm-s-inner CodeMirror-wrap  " lang="c++"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"></div><div class="CodeMirror-hscrollbar" style="left: 0px; min-height: 18px;"><div style="height: 100%; min-height: 1px; width: 0px;"></div></div><div class="CodeMirror-vscrollbar" style="min-width: 18px;"><div style="min-width: 1px; height: 0px;"></div></div><div class="CodeMirror-scrollbar-filler"></div><div class="CodeMirror-gutter-filler"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; min-height: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines"><div style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><pre class=""><span style="padding-right: 0.1px;"><span class="cm-comment">/**</span></span></pre></div><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* name: Li Gen Ling</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* student number: 3015201040</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* homework number: 3</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">*/</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#ifndef __COMPLEX_H_</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#define __COMPLEX_H_</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;cmath&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iomanip&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;sstream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iostream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">class</span> <span class="cm-def">Complex</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">friend</span> <span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&lt;&lt;</span>(<span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ostr</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">friend</span> <span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&gt;&gt;</span>(<span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">istr</span>, <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">private</span>:</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">double</span> <span class="cm-variable">_real</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">double</span> <span class="cm-variable">_imaginary</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">public</span>:</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span>(<span class="cm-variable-3">double</span> <span class="cm-variable">real</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>, <span class="cm-variable-3">double</span> <span class="cm-variable">imaginary</span> <span class="cm-operator">=</span> <span class="cm-number">0</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">const</span> <span class="cm-variable-3">double</span> <span class="cm-variable">getRealPart</span>() <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">const</span> <span class="cm-variable-3">double</span> <span class="cm-variable">getImaginaryPart</span>() <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-variable">add</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span> <span class="cm-variable">sc</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-variable">subtract</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span> <span class="cm-variable">sc</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-variable">multiply</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span> <span class="cm-variable">sc</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-variable">divide</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span> <span class="cm-variable">sc</span>) <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">double</span> <span class="cm-variable">abs</span>() <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">std::string</span> <span class="cm-variable">toString</span>() <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">+=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">-=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">*=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">/=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">+</span>() <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">-</span>() <span class="cm-keyword">const</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">++</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">++</span>(<span class="cm-variable-3">int</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">--</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">--</span>(<span class="cm-variable-3">int</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">};</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">+</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">-</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">*</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">/</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&lt;&lt;</span>(<span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ostr</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&gt;&gt;</span>(<span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">istr</span>, <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#endif</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; top: 0px;"></div><div class="CodeMirror-gutters" style="display: none; height: 1326px;"></div></div></div></pre><pre class="md-fences md-end-block md-focus" lang="c++"> <div class="CodeMirror cm-s-inner CodeMirror-wrap   CodeMirror-focused" lang="c++"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 4394px; left: 12.4013671875px;"></div><div class="CodeMirror-hscrollbar" style="left: 0px; min-height: 18px;"><div style="height: 100%; min-height: 1px; width: 0px;"></div></div><div class="CodeMirror-vscrollbar" style="min-width: 18px;"><div style="min-width: 1px; height: 0px;"></div></div><div class="CodeMirror-scrollbar-filler"></div><div class="CodeMirror-gutter-filler"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; min-height: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines"><div style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" style=""><pre class=""><span style="padding-right: 0.1px;"><span class="cm-comment">/**</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* name: Li Gen Ling</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* student number: 3015201040</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">* homework number: 3</span></span></pre><pre class=""><span style="padding-right: 0.1px;"> <span class="cm-comment">*/</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include "Complex.h"</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;cmath&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iomanip&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;iostream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;sstream&gt;</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-def">Complex::Complex</span>(<span class="cm-variable-3">double</span> <span class="cm-variable">real</span>, <span class="cm-variable-3">double</span> <span class="cm-variable">imaginary</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">_real</span> <span class="cm-operator">=</span> <span class="cm-variable">real</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">_imaginary</span> <span class="cm-operator">=</span> <span class="cm-variable">imaginary</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">const</span> <span class="cm-variable-3">double</span> <span class="cm-def">Complex::getRealPart</span>() <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">_real</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-keyword">const</span> <span class="cm-variable-3">double</span> <span class="cm-def">Complex::getImaginaryPart</span>() <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">_imaginary</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-def">Complex::add</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span> <span class="cm-variable">sc</span>) <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">Complex</span>(<span class="cm-variable">_real</span> <span class="cm-operator">+</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span>, <span class="cm-variable">_imaginary</span> <span class="cm-operator">+</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-def">Complex::subtract</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span> <span class="cm-variable">sc</span>) <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">Complex</span>(<span class="cm-variable">_real</span> <span class="cm-operator">-</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span>, <span class="cm-variable">_imaginary</span> <span class="cm-operator">-</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-def">Complex::multiply</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span> <span class="cm-variable">sc</span>) <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">double</span> <span class="cm-variable">result_real</span> <span class="cm-operator">=</span> <span class="cm-variable">_real</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span> <span class="cm-operator">-</span> <span class="cm-variable">_imaginary</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">double</span> <span class="cm-variable">result_imaginary</span> <span class="cm-operator">=</span> <span class="cm-variable">_real</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span> <span class="cm-operator">+</span> <span class="cm-variable">_imaginary</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">Complex</span>(<span class="cm-variable">result_real</span>, <span class="cm-variable">result_imaginary</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-def">Complex::divide</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span> <span class="cm-variable">sc</span>) <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">double</span> <span class="cm-variable">under</span> <span class="cm-operator">=</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span> <span class="cm-operator">+</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">double</span> <span class="cm-variable">result_real</span> <span class="cm-operator">=</span> (<span class="cm-variable">_real</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span> <span class="cm-operator">+</span> <span class="cm-variable">_imaginary</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span>) <span class="cm-operator">/</span> <span class="cm-variable">under</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable-3">double</span> <span class="cm-variable">result_imaginary</span> <span class="cm-operator">=</span> (<span class="cm-variable">_imaginary</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span> <span class="cm-operator">-</span> <span class="cm-variable">_real</span> <span class="cm-operator">*</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span>) <span class="cm-operator">/</span> <span class="cm-variable">under</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">Complex</span>(<span class="cm-variable">result_real</span>, <span class="cm-variable">result_imaginary</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable-3">double</span> <span class="cm-def">Complex::abs</span>() <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">std::sqrt</span>(<span class="cm-variable">_real</span> <span class="cm-operator">*</span> <span class="cm-variable">_real</span> <span class="cm-operator">+</span> <span class="cm-variable">_imaginary</span> <span class="cm-operator">*</span> <span class="cm-variable">_imaginary</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::string</span> <span class="cm-def">Complex::toString</span>() <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">std::stringstream</span> <span class="cm-variable">ss</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">std::string</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">if</span> (<span class="cm-variable">_imaginary</span> <span class="cm-operator">&gt;</span> <span class="cm-number">0</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::fixed</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setprecision</span>(<span class="cm-number">6</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setiosflags</span>(<span class="cm-variable">std::ios::showpoint</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">_real</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"+"</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">_imaginary</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"i"</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> <span class="cm-keyword">if</span> (<span class="cm-variable">_imaginary</span> <span class="cm-operator">&lt;</span> <span class="cm-number">0</span>) {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::fixed</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setprecision</span>(<span class="cm-number">6</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setiosflags</span>(<span class="cm-variable">std::ios::showpoint</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">_real</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">_imaginary</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-string">"i"</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  } <span class="cm-keyword">else</span> {</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setprecision</span>(<span class="cm-number">6</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">std::setiosflags</span>(<span class="cm-variable">std::ios::showpoint</span>) <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">_real</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-variable">ss</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">+=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-operator">*</span><span class="cm-keyword">this</span> <span class="cm-operator">=</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">add</span>(<span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">-=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-operator">*</span><span class="cm-keyword">this</span> <span class="cm-operator">=</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">subtract</span>(<span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">*=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-operator">*</span><span class="cm-keyword">this</span> <span class="cm-operator">=</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">multiply</span>(<span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">/=</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-operator">*</span><span class="cm-keyword">this</span> <span class="cm-operator">=</span> <span class="cm-keyword">this</span><span class="cm-operator">-&gt;</span><span class="cm-variable">divide</span>(<span class="cm-variable">sc</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">+</span>() <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">Complex</span>(<span class="cm-variable">_real</span>, <span class="cm-variable">_imaginary</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">-</span>() <span class="cm-keyword">const</span></span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">Complex</span>(<span class="cm-operator">-</span><span class="cm-number">1</span> <span class="cm-operator">*</span> <span class="cm-variable">_real</span>, <span class="cm-operator">-</span><span class="cm-number">1</span> <span class="cm-operator">*</span> <span class="cm-variable">_imaginary</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">++</span>()</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-operator">++</span><span class="cm-variable">_real</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">++</span>(<span class="cm-variable-3">int</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-variable">result</span> <span class="cm-operator">=</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-operator">++</span>(<span class="cm-operator">*</span><span class="cm-keyword">this</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">--</span>()</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-operator">--</span><span class="cm-variable">_real</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-variable">Complex::operator</span><span class="cm-operator">--</span>(<span class="cm-variable-3">int</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">Complex</span> <span class="cm-variable">result</span> <span class="cm-operator">=</span> <span class="cm-operator">*</span><span class="cm-keyword">this</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-operator">--</span>(<span class="cm-operator">*</span><span class="cm-keyword">this</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">result</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">+</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc2</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">sc1</span>.<span class="cm-variable">add</span>(<span class="cm-variable">sc2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">-</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc2</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">sc1</span>.<span class="cm-variable">subtract</span>(<span class="cm-variable">sc2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">*</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc2</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">sc1</span>.<span class="cm-variable">multiply</span>(<span class="cm-variable">sc2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">Complex</span> <span class="cm-keyword">operator</span><span class="cm-operator">/</span>(<span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc1</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc2</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">sc1</span>.<span class="cm-variable">divide</span>(<span class="cm-variable">sc2</span>);</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&lt;&lt;</span>(<span class="cm-variable">std::ostream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">ostr</span>, <span class="cm-keyword">const</span> <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">ostr</span> <span class="cm-operator">&lt;&lt;</span> <span class="cm-variable">sc</span>.<span class="cm-variable">toString</span>();</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">ostr</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;">}</span></pre><pre class=""><span style="padding-right: 0.1px;"><span>​</span></span></pre><pre class=""><span style="padding-right: 0.1px;"><span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-keyword">operator</span><span class="cm-operator">&gt;&gt;</span>(<span class="cm-variable">std::istream</span><span class="cm-operator">&amp;</span> <span class="cm-variable">istr</span>, <span class="cm-variable">Complex</span><span class="cm-operator">&amp;</span> <span class="cm-variable">sc</span>)</span></pre><pre class=""><span style="padding-right: 0.1px;">{</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-variable">istr</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_real</span> <span class="cm-operator">&gt;&gt;</span> <span class="cm-variable">sc</span>.<span class="cm-variable">_imaginary</span>;</span></pre><pre class=""><span style="padding-right: 0.1px;"> &nbsp;  <span class="cm-keyword">return</span> <span class="cm-variable">istr</span>;</span></pre><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><pre class=""><span style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; top: 0px;"></div><div class="CodeMirror-gutters" style="display: none; height: 4420px;"></div></div></div></pre><p></p></div>
</body>
</html>